/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.dew.profesoresparticulares.action;

import java.util.ArrayList;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import pe.edu.upc.dew.profesoresparticulares.model.Horario;
import pe.edu.upc.dew.profesoresparticulares.model.Usuario;
import pe.edu.upc.dew.profesoresparticulares.service.CursoService;
import pe.edu.upc.dew.profesoresparticulares.service.HoraService;
import pe.edu.upc.dew.profesoresparticulares.service.HorarioService;
import pe.edu.upc.dew.profesoresparticulares.service.UsuarioService;
import pe.edu.upc.dew.profesoresparticulares.util.Constantes;

@InterceptorRefs({
    @InterceptorRef("autorizacion"),
    @InterceptorRef("alumno"),
    @InterceptorRef("defaultStack")})
public class AlumnoConsultaHorarioAction extends BaseAction {

    @Autowired
    private HorarioService horarioService;
    @Autowired
    private Long codHorarioReserva;
    @Autowired
    private CursoService cursoService;
    @Autowired
    private HoraService horaService;
    @Autowired
    private UsuarioService usuarioService;

    public Long getCodHorarioReserva() {
        return codHorarioReserva;
    }

    public void setCodHorarioReserva(Long codHorarioReserva) {
        this.codHorarioReserva = codHorarioReserva;
    }

    public void setCursoService(CursoService cursoService) {
        this.cursoService = cursoService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public void setHoraService(HoraService horaService) {
        this.horaService = horaService;
    }

    public void setHorarioService(HorarioService horarioService) {
        this.horarioService = horarioService;
    }

    @Action(value = "inicioRegHorario", results ={
    @Result(name = "success", location = "pages/alumnoConsultaReservas.jsp"),
    @Result(name = "input", location = "pages/alumnoConsultaReservas.jsp")})
    public String inicio() {        
        ArrayList<Horario> horarios = horarioService.getregistroHorario();
        getRequest().setAttribute("horariosReservados", horarios);
        return SUCCESS;
    }

    @Action(value = "cancelarReserva", results ={
    @Result(name = "success", location = "pages/alumnoConsultaReservas.jsp"),
    @Result(name = "input", location = "pages/alumnoConsultaReservas.jsp")})
    public String borrarReserva() {
        horarioService.cancelarReserva(codHorarioReserva);
        ArrayList<Horario> horarios = horarioService.getregistroHorario();
        getRequest().setAttribute("horariosReservados", horarios);
        return SUCCESS;
    }

    public void prepare() throws Exception {
        Usuario profesor = (Usuario) getSession().getAttribute(Constantes.USUARIO);
    }
}
